const BinarySearchTree = require('./01-binarySearchTree_es5');

const bst = new BinarySearchTree();
bst.insert(11);
bst.insert(7);
bst.insert(15);
bst.insert(5);
bst.insert(9);
bst.insert(3);
bst.insert(8);

// 由于js特性，对象属性无法完全展开，可以利用JSON.stringify()看到完整数据
console.log(JSON.stringify(bst));

// 测试中序遍历
const arr = [];
// bst.inOrderTraverse(function (v) {
//   arr.push(v);
// })
// bst.preOrderTraverse(function (v) {
//   arr.push(v);
// })
// bst.postOrderTraverse(function (v) {
//   arr.push(v);
// })
// console.log(arr);  // 中序遍历结果：[ 3,  5,  7, 8, 9, 11, 15 ]
// console.log(arr);  // 先序遍历结果：[ 11, 7,  5, 3, 9, 8, 15 ]
// console.log(arr);  // 后序遍历结果：[ 3,  5,  8, 9, 7, 15, 11 ]

// 测试search()
console.log(bst.search(11)); // true
console.log(bst.search(9)); // true
console.log(bst.search(111)); // false

// 测试remove()
bst.remove(5);
console.log(JSON.stringify(bst));